<?php

require_once(BaseConfig::LoadClass('objeto_base.class.php'    ));
require_once(BaseConfig::LoadClass('filtro.class.php'         ));
require_once(BaseConfig::LoadClass('abc.class.php'            ));
require_once(BaseConfig::LoadClass('carga_excel.class.php'    ));

class Producto extends ObjetoBase {
  var $intIdProducto   ;
  var $strCodigo       ;
  var $strNombre       ;
  var $fltImpuesto     ;
  var $fltPrecio       ;
  var $strClasificacion;
  
  function Producto($intIdProducto = 0) {
    $arrMapaDatos = Array();
    $arrMapaDatos['id_producto'  ] = Array('NombreVariable' => 'intIdProducto'   , 'TipoVariable' => 'I');
    $arrMapaDatos['codigo'       ] = Array('NombreVariable' => 'strCodigo'       , 'TipoVariable' => 'S');
    $arrMapaDatos['nombre'       ] = Array('NombreVariable' => 'strNombre'       , 'TipoVariable' => 'S');
    $arrMapaDatos['impuesto'     ] = Array('NombreVariable' => 'fltImpuesto'     , 'TipoVariable' => 'N');
    $arrMapaDatos['precio'       ] = Array('NombreVariable' => 'fltPrecio'       , 'TipoVariable' => 'N');
    $arrMapaDatos['clasificacion'] = Array('NombreVariable' => 'strClasificacion', 'TipoVariable' => 'S');
    
    $this->__ArmarDatosPrivados('cat_productos', $arrMapaDatos, 'id_producto');
    $this->SeleccionarPorIndice($intIdProducto);
  }
}

class FiltroProducto extends Filtro {
  function FiltroProducto() {
    $arrProceso["codigo"] = "Codigo";
    $arrProceso["nombre"] = "Nombre";
    
    parent::CrearFiltro("cat_productos", "id_producto", $arrProceso, "Busqueda", "", "", "Productos");
  }
}

class Carga_Producto extends CargaExcel {
  function Carga_Producto() {
    parent::CargaExcel();
    $arrProceso["codigo"       ] = "Codigo"       ;
    $arrProceso["nombre"       ] = "Nombre"       ;
    $arrProceso["impuesto"     ] = "Impuesto"     ;
    $arrProceso["precio"       ] = "Precio"       ;
    $arrProceso["clasificacion"] = "Clasificacion";
    
    $arrReferencias = array();
    
    $this->Init("Producto", "cat_productos", $arrProceso, $arrReferencias);
    
    $this->intPrimeraLinea       = 3;
    $this->intCargarSoloCompleto = 0;
    $this->bolLimpiarTablaAntes  = true;
    
//    $this->__arrInfoSaltarLinea[] = "ITEM";
  }
}


class ABC_Producto extends ABC_Base {
  function ABC_Producto() {
    $strClaseBase     = "Producto"      ;
    $strClaseFiltro   = "FiltroProducto";
    $strClaseCarga    = "Carga_Producto";
    $strCampoMostrar  = "codigo"        ;
    $strOpcionListado = "abc_productos" ;
    $strOpcionGuardar = "abc_productos" ;

    $arrNombresColumnas = array();
    $arrNombresColumnas["codigo"       ] = "Codigo"       ;
    $arrNombresColumnas["nombre"       ] = "Nombre"       ;
    $arrNombresColumnas["impuesto"     ] = "Impuesto"     ;
    $arrNombresColumnas["precio"       ] = "Precio"       ;
    $arrNombresColumnas["clasificacion"] = "Clasificacion";

    $arrReferencias = array();
    
    $this->Inicializar($strClaseBase, $arrNombresColumnas, $strOpcionListado, $strOpcionGuardar, $strCampoMostrar, $strClaseFiltro, $arrReferencias, "", $strClaseCarga);
    
    $this->bolABCLista             = true;
    $this->bolABCListaOcultarTD    = true;
    $this->bolPosibleNuevoElemento = true;
    $this->intTipoGuardado         = 1;
    $this->intNumeroRes            = 20;
    $this->bolSoloLectura          = false;
  }
}

?>